home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Go64!
/
Go64_2003-10_2003_CSW_Side_A.d64
/
3d _sdn
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
88 lines
0 poke53280,0:poke53281,5
1 px(1)=-1:py(1)=-1:pz(1)=+1
2 px(2)=+1:py(2)=-1:pz(2)=+1
3 px(3)=-1:py(3)=+1:pz(3)=+1
4 px(4)=+1:py(4)=+1:pz(4)=+1
5 px(5)=-1:py(5)=-1:pz(5)=-1
6 px(6)=+1:py(6)=-1:pz(6)=-1
7 px(7)=-1:py(7)=+1:pz(7)=-1
8 px(8)=+1:py(8)=+1:pz(8)=-1
9 zm=20:f=1
40 gosub1000
50 xa=xa+0.5
51 ya=ya+0.7
52 za=za+0.2
53 f=f+1
60 goto40
100 end
1000 rem-------------------------------
1001 print"[153]calculating frame";f
1002 fori=1to8
1005 x3=px(i):y3=py(i):z3=pz(i)
1006 gosub3000
1007 x=x3*zm/(z3+4)+20
1008 y=y3*zm/(z3+4)+12
1010 remsp=1524+x+int(y)*40
1020 rempokesp,42
1021 xc(i)=x:yc(i)=y
1030 next
1032 print"[147] ";
1033 print"[158]displaying frame";f
1035 gosub5000
1040 return
2000 rem-------------------------------
2001 rx=x*cos(a)+y*cos(a+(NULL)/2)
2010 ry=x*cos(a+(NULL)/2)+y*cos(a+(NULL))
2020 return
3000 rem-------------------------------
3010 a=xa:x=y3:y=z3:gosub2000
3020 y3=rx:z3=ry
3030 a=ya:x=x3:y=z3:gosub2000
3040 x3=rx:z3=ry
3050 a=za:x=x3:y=y3:gosub2000
3060 x3=rx:y3=ry
3070 return
4000 rem-------------------------------
4010 dx=x2-x1:dy=y2-y1
4020 sp=1024+x1+int(y1)*40
4030 l=abs(dy):ys=sgn(dy)*40
4035 ifabs(dx)>abs(dy)then4100
4040 fori=1tol
4045 pokesp,42
4050 sp=sp+ys+dx/(l+0.0001)
4060 next:return
4100 l=abs(dx):xs=sgn(dx):yp=0:ys=dy/l
4110 fori=1tol
4120 pokesp+int(yp)*40,42
4130 yp=yp+ys:sp=sp+xs
4140 next:return
5000 rem-------------------------------
5010 x1=xc(1):y1=yc(1)
5020 x2=xc(2):y2=yc(2) : gosub4000
5030 x1=xc(3):y1=yc(3)
5040 x2=xc(4):y2=yc(4) : gosub4000
5050 x1=xc(1):y1=yc(1)
5060 x2=xc(3):y2=yc(3) : gosub4000
5070 x1=xc(2):y1=yc(2)
5080 x2=xc(4):y2=yc(4) : gosub4000
5090 rem///
5110 x1=xc(5):y1=yc(5)
5120 x2=xc(6):y2=yc(6) : gosub4000
5130 x1=xc(7):y1=yc(7)
5140 x2=xc(8):y2=yc(8) : gosub4000
5150 x1=xc(5):y1=yc(5)
5160 x2=xc(7):y2=yc(7) : gosub4000
5170 x1=xc(6):y1=yc(6)
5180 x2=xc(8):y2=yc(8) : gosub4000
5190 rem///
5210 x1=xc(1):y1=yc(1)
5220 x2=xc(5):y2=yc(5) : gosub4000
5230 x1=xc(2):y1=yc(2)
5240 x2=xc(6):y2=yc(6) : gosub4000
5250 x1=xc(3):y1=yc(3)
5260 x2=xc(7):y2=yc(7) : gosub4000
5270 x1=xc(4):y1=yc(4)
5280 x2=xc(8):y2=yc(8) : gosub4000
5290 rem///
5999 return